home *** CD-ROM | disk | FTP | other *** search
/ Resource Library: Multimedia / Resource Library: Multimedia.iso / hypercrd / xcmds / dvlprstc.hqx / Developer Stack 1.3r / stack.txt < prev   
Encoding:
Text File  |  1991-04-30  |  10.0 KB  |  314 lines

  1. -- stack: in.3r
  2. -- format: 8 (HyperCard 1)
  3. -- flags: 0x1000 (none)
  4. -- protect password hash: 0
  5. -- maximum user level: 5 (scripting)
  6. -- window: Rect(x1=0, y1=0, x2=0, y2=0)
  7. -- screen: Rect(x1=0, y1=0, x2=0, y2=0)
  8. -- card dimensions: w=0 h=0
  9. -- scroll: x=0 y=0
  10. -- background count: 9
  11. -- first background id: 3091
  12. -- card count: 140
  13. -- first card id: 4851
  14. -- list block id: 46914
  15. -- print block id: 3564
  16. -- font table block id: 0
  17. -- style table block id: 0
  18. -- free block count: 2
  19. -- free size: 9664 bytes
  20. -- total size: 360448 bytes
  21. -- stack block size: 8192 bytes
  22. -- created by hypercard version: 0x00000000
  23. -- compacted by hypercard version: 0x01208000
  24. -- modified by hypercard version: 0x01208000
  25. -- opened by hypercard version: 0x01258000
  26. -- patterns[0]: 0x0000000000000000
  27. -- patterns[1]: 0x0000220000002200
  28. -- patterns[2]: 0x8800220088002200
  29. -- patterns[3]: 0xCC003300CC003300
  30. -- patterns[4]: 0xCC883322CC883322
  31. -- patterns[5]: 0xFF00FF00FF00FF00
  32. -- patterns[6]: 0xEECCBB33EECCBB33
  33. -- patterns[7]: 0xFFCCFF33FFCCFF33
  34. -- patterns[8]: 0xFFEEFFBBFFEEFFBB
  35. -- patterns[9]: 0xFFFFFFBBFFFFFFBB
  36. -- patterns[10]: 0x8010022001084004
  37. -- patterns[11]: 0xFFFFFFFFFFFFFFFF
  38. -- patterns[12]: 0x8822882288228822
  39. -- patterns[13]: 0x1122448811224488
  40. -- patterns[14]: 0xC4800C6843023026
  41. -- patterns[15]: 0xB130031BD8C00C8D
  42. -- patterns[16]: 0xAA00AA00AA00AA00
  43. -- patterns[17]: 0x8822552288225522
  44. -- patterns[18]: 0x8855225588552255
  45. -- patterns[19]: 0x77DD77DD77DD77DD
  46. -- patterns[20]: 0x8000000000000000
  47. -- patterns[21]: 0xAA55AA55AA55AA55
  48. -- patterns[22]: 0x5555555555555555
  49. -- patterns[23]: 0x8244394482010101
  50. -- patterns[24]: 0x8814224188412214
  51. -- patterns[25]: 0x8080413E080814E3
  52. -- patterns[26]: 0x22048C7422179810
  53. -- patterns[27]: 0xBE808808EB088880
  54. -- patterns[28]: 0x25C8328964244C92
  55. -- patterns[29]: 0xA29C41BE2AC914EB
  56. -- patterns[30]: 0x40A00000040A0000
  57. -- patterns[31]: 0x8040200002040800
  58. -- patterns[32]: 0xAA00800088008000
  59. -- patterns[33]: 0xFF80808080808080
  60. -- patterns[34]: 0x081C22C180010204
  61. -- patterns[35]: 0xFF808080FF080808
  62. -- patterns[36]: 0xF87422478F172271
  63. -- patterns[37]: 0xBF00BFBFB0B0B0B0
  64. -- patterns[38]: 0xFF7FBE5DA2418000
  65. -- patterns[39]: 0xFAF5FAF5A050A050
  66. -- checksum: 0x0
  67. ----- HyperTalk script -----
  68. --┬⌐1988 Steve Drazga & AnalytX
  69.  
  70. --ΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇó
  71.  
  72. on openStack
  73.   hide message box
  74.   set userlevel to 5
  75. end openStack
  76.  
  77. --ΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇó
  78.  
  79. on mouseup
  80.   if the optionkey is not down then exit mouseup
  81.   else
  82.     if the shiftkey is down then edit script of this background
  83.     else edit script of target
  84.   end if
  85. end mouseup
  86.  
  87. --ΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇó
  88.  
  89. on controlbutton ref
  90.   if the commandkey is down then
  91.     set cursor to 4
  92.     visual dissolve to black
  93.     visual dissolve
  94.     go first card of background ref
  95.     exit controlbutton
  96.   end if
  97.  
  98.   set cursor to 4
  99.   put DialogList("┬⌐1988SDrazga",card field ref of card id 4851,comma) into selected
  100.  
  101.   if selected is not empty then
  102.     push this card
  103.     visual scroll left to gray
  104.     visual scroll right
  105.     go card selected
  106.     if the result is not empty then beep
  107.   end if
  108. end controlbutton
  109.  
  110. --ΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇó
  111.  
  112. on goPrev
  113.   set lockmessages to true
  114.   if (id of this card) is (id of first card of this bkgnd) then
  115.     beep
  116.     answer "This is the first "&short name of this bkgnd&" card."
  117.     exit goPrev
  118.   else
  119.     visual scroll right very fast
  120.     send closecard to this card
  121.     go prev card
  122.     send opencard to this card
  123.   end if
  124. end goPrev
  125.  
  126. --ΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇó
  127.  
  128. on goNext
  129.   set lockmessages to true
  130.   if (id of this card) is (id of last card of this bkgnd) then
  131.     beep
  132.     answer "This is the last "&short name of this bkgnd&" card."
  133.     exit goNext
  134.   else
  135.     visual scroll left very fast
  136.     send closecard to this card
  137.     go next card
  138.     send opencard to this card
  139.   end if
  140. end goNext
  141.  
  142. --ΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇó
  143.  
  144. on newcard
  145.   ask "What do you want to name this card?"
  146.   put it into newName
  147.   set cursor to 4
  148.   put the short name of this background into rememberThis
  149.  
  150.   put 0 into here
  151.   repeat until (here is empty) or (newName is empty)
  152.     put findstring("┬⌐1988SDrazga",newName,card field rememberThis of card id 4851,comma) into here
  153.     if here is not empty then
  154.       beep
  155.       ask "There is already a card with that name "& "in this section. Please select another name..." with newName
  156.       put it into newName
  157.     end if
  158.   end repeat
  159.  
  160.   if (newName is empty) then
  161.     domenu delete card
  162.     hide message
  163.     exit newcard
  164.   end if
  165.  
  166.   put "Please wait while we update things up for you..."
  167.   set the name of this card to newName
  168.   put newName into field name
  169.  
  170.   put "reIndexing this section..."
  171.   put ","&newName after card field rememberThis of card id 4851
  172.   put SortItems(card field rememberThis of card id 4851) into card field rememberThis of card id 4851
  173.  
  174.   put "reIndexing master Index..."
  175.   put ","&newName after card field index of card id 4851
  176.   put SortItems(card field index of card id 4851) into card field index of card id 4851
  177.  
  178.   hide message window
  179. end newcard
  180.  
  181. --ΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇó
  182.  
  183. on deleteCard
  184.   put the short name of this background into rememberThis
  185.   put short Name of this card into deleteThis
  186.  
  187.   put "Updating the index of this section..."
  188.   put findstring("┬⌐1988SDrazga",deleteThis,card field rememberThis of card id 4851,comma) into here
  189.   if here is not empty then delete item here of card field rememberThis of card id 4851
  190.  
  191.   put "Updating master index..."
  192.   put findstring("┬⌐1988SDrazga",deleteThis,card field index of card id 4851,comma) into here
  193.   if here is not empty then delete item here of card field index of card id 4851
  194.   hide message
  195.   pass deleteCard
  196. end deleteCard
  197.  
  198. --ΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇó
  199.  
  200. on closecard
  201.   hide message
  202.   pass closecard
  203. end closecard
  204.  
  205. --ΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇó
  206.  
  207. on idle
  208.   global ProgressPointer,RemoveProgress
  209.   if RemoveProgress is TRUE then
  210.     Progress 3
  211.     put FALSE into RemoveProgress
  212.   end if
  213.   pass idle
  214. end idle
  215.  
  216. --ΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇó
  217. --
  218. --this function will take a word passed to it by the calling script,
  219. --check if it is valid, and then go the card named that word.
  220. --
  221. function HyperText selectedWord
  222. --
  223. --
  224. --hypertext technique by Steve Drazga, AnalytX Incorporated
  225. --if you use this in your scripts please include these 2 lines.
  226. --
  227. --
  228. if space is in SelectedWord then  --the user selected more than 1 word
  229.   click at loc of target       --so we will clear the selection
  230.   exit HyperText             --and exit to wait for another selection
  231. end if
  232. push this card
  233. visual dissolve to gray
  234. visual dissolve
  235. go card selectedWord
  236. if the result is not empty then
  237.   play oops
  238.   answer "Can't find that card"
  239. end if
  240. end HyperText
  241.  
  242. --ΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇó
  243. --
  244. --this function is used by the 'install' buttons in the
  245. --XFCN & XCMD cards.  It needs the resource type and resource name
  246. --passed to it.  It then attempts to install the resource into
  247. --a target stack & returns the result.
  248. --
  249. function installres type, resname
  250. --
  251. --Original script by Steve Drazga, AnalytX
  252. --XFCNs used: fileName,
  253. --XCMDs used: ResCopy,
  254. --HANDLERS used: none
  255. --FUNCTIONS used: none
  256. --
  257. put (long name of this stack) into sourceStack
  258. delete first word of sourceStack
  259. delete first character of sourceStack
  260. delete last character of sourceStack
  261. put "Select a stack to copy this "&type&" resource into."
  262. put filename("STAK") into fname
  263. if fname is empty then exit installres
  264. if sourcestack=fname then
  265.   play "oops"
  266.   return "Get real.  You can't install it in this stack"
  267.   exit installres
  268. end if
  269. --
  270. ResCopy sourceStack,fname,type,resname
  271. --
  272. if first char of the result is "E" then
  273.   play oops
  274.   answer "Attempt to install resource has failed."
  275. else
  276.   answer type&&"resource installation successful"
  277. end if
  278. hide message
  279. end installres
  280.  
  281. --ΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇó
  282. --
  283. -- LastPathComponent -- given a file pathname, returns the last
  284. -- component i.e. whatever comes after the last colon, if anything.
  285. -- From Dewi Williams
  286. --
  287. function LastPathComponent name
  288. -- scan backwards for the last colon.
  289. repeat with i = the length of name down to 1
  290.   if character i of name is ":" then exit repeat
  291. end repeat
  292.  
  293. if i is 1 then
  294.   -- Name was of the form ":thing" or "thing". Check for leading
  295.   -- colon, and adjust if necessary. Done for generality.
  296.   if first character of name is ":" then
  297.     put 2 into i
  298.   end if
  299. else
  300.   add 1 to i -- skip the colon
  301. end if
  302.  
  303. -- Name was of the form "Thing:otherthing". Return "otherThing".
  304. put empty into lastpath
  305. repeat with j = i to the length of name
  306.   put character j of name after lastpath
  307. end repeat
  308. return lastpath
  309. end LastPathComponent
  310.  
  311. --ΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇóΓÇó
  312.  
  313.  
  314.